Cloud computing is a field of research that aims to move processing resource management from within each enterprise into a wide area network (WAN) such as the Internet. When implemented, a user or enterprise has similar services and software but the processing for those is at least partially performed outside the user's system or the enterprise—within the cloud.
Some fundamental concepts of cloud based computer include mutitennacy, where a single system is in execution of software relating to a plurality of different and distinct clients. Different from typical server applications, where each client has a defined server that they use—client server operations, and wherein one server serves data to multiple clients, in multitenancy one server system executes software and stores data for many different clients appearing as a single different server to each. This is achieved through the execution of virtual machines, each virtual machine virtualising a processing system.
Another fundamental concept of cloud based computing is that a location in the cloud where the virtualisation occurs is not significant. To this end, virtualising systems often comprise numerous processing systems and numerous storage systems all in communication one with another. Further, any of the physical underlying hardware can be upgraded, changed, moved, replaced, combined, etc. as technology, business needs, and the cloud system may require. Thus, a virtual machine in execution on a first physical system today may be executed on a second other physical system tomorrow. Further, data stored within a first storage medium today may be stored within a second other storage medium tomorrow.
Secure multitenancy is a problem because data is accessible to each and every physical system through a storage area network (SAN). Presently, virtualising software for forming virtual machines blocks access to data outside said virtual machine. Thus, “tenants” in a multitenancy cannot see data of other tenants because the software prevents this. The software relies on policies and policy implementations to determine data that can or cannot be shared.
Unfortunately, any policy-based security is inherently problematic. One erroneous policy or bug could leave all the data within a SAN available to all tenants. Further, an administrator who sets policies has access to all the data within the SAN.
Presently, the only way to solve this problem is by ciphering of data. For example, when a multitenancy system is used for data backup and restore, data being backed up is encrypted at the client and transmitted via the WAN to a storage medium within the cloud. Upon retrieving the data, the client decrypts same and then has access to it. Of course, the data is completely unusable until decrypted and therefore is not usable within the cloud.
Other methods require the installation of a hardware device for each tenant seeking security and as such are not scalable, portable, or as is desirable in cloud computing systems, ubiquitous. Thus, with cloud computing steering away from custom hardware solutions for a single application for a single user—as is obviously undesirable—policy based security remains the most common approach.
It would be advantageous to provide an improved method of secure multitenancy.